
https://leetcode.cn/problems/sfvd7V/description/
//class Solution {
//public:
//    vector<vector<string>> groupAnagrams(vector<string>& strs) {
//
//        unordered_map<string, vector<string>> hash;
//        for (auto& x : strs) {
//            string tmp = x;
//            sort(tmp.begin(), tmp.end());
//            hash[tmp].push_back(x);
//        }
//
//        vector<vector<string>> vv;
//        for (auto& [a, b] : hash) {
//            vv.push_back(b);
//        }
//        return vv;
//    }
//};

https://leetcode.cn/problems/contains-duplicate-ii/description/
//class Solution {
//public:
//    bool containsNearbyDuplicate(vector<int>& nums, int k) {
//
//        unordered_map<int, int> hash;
//
//        for (int i = 0; i < nums.size(); i++) {
//            if (hash.count(nums[i])) {
//                if (i - hash[nums[i]] <= k) {
//                    return true;
//                }
//            }
//            hash[nums[i]] = i;
//        }
//        return false;
//    }
//};

https://leetcode.cn/problems/contains-duplicate/description/
//class Solution {
//public:
//    bool containsDuplicate(vector<int>& nums) {
//        unordered_map<int, int> hash;
//
//        for (auto& x : nums) {
//            if (++hash[x] >= 2) {
//                return true;
//            }
//        }
//        return false;
//    }
//};

https://leetcode.cn/problems/check-permutation-lcci/description/
//class Solution {
//public:
//    bool CheckPermutation(string s1, string s2) {
//
//        if (s1.size() != s2.size()) {
//            return false;
//        }
//
//        int hash[26];
//        for (int i = 0; i < s1.size(); i++) {
//            hash[s1[i] - 'a']++;
//            hash[s2[i] - 'a']--;
//        }
//
//        for (int i = 0; i < 26; i++) {
//            if (hash[i] != 0) {
//                return false;
//            }
//        }
//
//        return true;
//    }
//};


https://leetcode.cn/problems/two-sum/description/
//class Solution {
//public:
//    vector<int> twoSum(vector<int>& nums, int target) {
//        unordered_map<int, int> hash;
//        for (int i = 0; i < nums.size(); i++) {
//            int x = target - nums[i];
//            if (hash.count(x)) {
//                return { hash[x],i };
//            }
//            hash[nums[i]] = i;
//        }
//        return { -1,-1 };
//    }
//};